Kontrola wersji

Piotr Sobczyk

5 Marca 2022

Różne formalności

Kim jestem?

  • Analiza danych
  • Matematyka
  • Szychta w danych

Czego będziemy się uczyć?

Wersja pythonowa

  • Na zajęciach omawiam R
  • Materiały Pythonowe są udostępnione
  • Ćwiczenia w dowolnym języku

Zaliczenie

  • Projekt - interaktywna aplikacja związana z danymi (dashboard, ML etc.).
  • Grupy 2-3 osobowe.
  • Dowolny temat zgłaszany bezwzględnie do końca kwietnia (tydzień opóźnienia - 0.25 oceny w dół).
  • Wykonanie w shiny/dashu.
  • Kluczowe jest stosowanie się do dobrych zasad programowania, które będą omówione.
  • Sama aplikacja nie jest kluczowa, ale nie powinna być żenująco mała.

Wymagania projektu

  • Użycie Pull requestów (nie mergujemy do mastera).
  • Użycie formatowania kodu (zgodność z black lub styleRem).
  • Użycie lintera.
  • Napisane testy jednostkowe (miarą code coverage).
  • Dockeryzacja.
  • Aplikacja, która ma sens ;)
  • 1000+ linii kodu (negocjowalne)

Czym jest Git?

Co to jest Git?

Git jest systemem kontroli wersji. To znaczy, że pozwala na śledzenie i zarządzanie historią kodu źródłowego.

Git nie jest jedyną opcją na kontrolę wersji. Alternatywy:

  • Subversion
  • Każda chmura ma swoje rozwiązanie np. AWS CodeCommit

Uwaga

Bardzo użyteczne np. do pisania prac dyplomowych.

Serwery do zarządzanie repozytoriami Gita

  • GitHub
  • Gitlab
  • BitBucket
  • SourceForge
  • Własny serwer

Uwaga

Github pozawala na hosting statycznych stron internetowych (Jekyll, Hugo, Next.js etc.) Starcza na większość podstawowych potrzeb o ile nie wymagany kontakt np. z bazą danych.

Co trzeba umieć żeby sprawnie korzystać z Gita

Terminal

Nie ten terminal.

Nie ten terminal

Bardziej taki terminal

Jeśli korzystacie z czegoś na bazie Unixa (Linux, Mac) to będzie łatwo. Z Windowsem są większe problemy.

Czas na gita modły

Przedstawiamy się

git config --global user.name 'Jane Doe'
git config --global user.email 'jane@example.com'
git config --global --list

Zakładanie repozytorium

Zrobienie pierwszego commita

echo "# demo-repo" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:psobczyk/demo-repo.git
git push -u origin main

Uwaga

Jeśli korzysta si z IDE to nie trzeba pamiętać tych komend. Można je ,,wyklikać". Ale warto mimo wszystko wiedzieć, co się dzieje pod spodem. Na co dzień robimy to za pomocą RStudio czy PyCharma.

Zakładanie gałęzi

git checkout -b first-branch

Pull/merge request

Na Githubie/Gitlabie.

Merge

W Pull request “mergujemy” do głównej gałęzi (master a ostatnio nazywana main).

Idealnie jeśli:

This branch has no conflicts with the base branch

Ciągnij z gałęzi Pana

git pull master

merge z masterem

git merge origin/main

Zadania

Zadanie 1.

Przejdź przez instrukcję instalacji dostępną tutaj.

  1. Sprawdź jak na swoim systemie operacyjnym korzystsać z terminala
  2. Załóż konto na GiHubie (hint można ubiegać się o studenckją zniżkę)
  3. Zainstaluj RStudio
  4. Zainstaluj gita
  5. Jeśli nie lubisz pracować z konsoli zainstaluj narzędzie do zarządzania repozytoriami lokalnie na Twoim komputerze. RStudio daje taką możliwość podobnie jak większość dobrych IDE (PyCharm, DataSpell). Są też dedykowane programy typu GitKraken czy GitHub Desktop.

Zadanie 2.

Utwórz repozytorium na Githubie i ściągnij je na swój komputer. Dodaj plik z prostym skryptem (.R lub .py) Swórz commit-a i wyślij go na serwer. Podziel się repozytorium z kolegą/koleżanką. Ściągnij czyjeś repo. Otwórz, przeczytaj i uruchom skrypt

Źródła

Źródła